const App = getApp()
var timeOut = null
Page({
  data: {
    orderStatus: 0,
    options: {},
    payClose: false,
    paySuccess: false
  },
  onLoad(options) {
    console.log(options)
    if (options.orderNum) {
      this.setData({
        options: options
      })
      this.getPayStatus(options.orderNum)
      this.openPay()
    } else {
      wx.showToast({
        title: '订单不存在，请重试',
      })
    }
  },
  onHide() {
    clearTimeout(timeOut)
  },
  onUnload() {
    clearTimeout(timeOut)
  },
  async getPayStatus(orderNum) {
    let data = await App.$axios.request({
      url: `/parent/order/curriculum/order/${orderNum}`,
      method: 'GET',
      loading: true,
    })
    if (data) {
      this.setData({
        orderStatus: data.payStatus
      })
      // if (data.payStatus == 1) {
      //   let that = this
      //   timeOut = setTimeout(() => {
      //     that.getPayStatus(orderNum)
      //   }, 10000)
      // } else 
      if (data.payStatus == 2) {
        wx.switchTab({
          url: '/pages/course/course'
        })
      }
    }
  },
  openPay() {
    let that = this
    let options = this.data.options
    wx.requestPayment({
      timeStamp: options.timeStamp, // 时间戳，从1970年1月1日00:00:00至今的秒数，即当前的时间
      nonceStr: options.nonceStr, // 随机字符串，长度为32个字符以下。
      package: 'prepay_id=' + options.package, // 统一下单接口返回的 prepay_id 参数值，格式如“prepay_id=*”
      signType: options.signType, // 签名算法类型，默认为 MD5，支持RSA等其他加密算法
      paySign: options.paySign, // 签名，详见签名生成算法
      success: function (res) {
        // 支付成功后的回调函数， res.errMsg = 'requestPayment:ok'
        console.log(res)
        wx.showToast({
          title: '支付成功！',
          icon: 'none'
        })
        that.setData({
          paySuccess: true
        })
        that.getPayStatus(options.orderNum)
      },
      fail: function (res) {
        // 支付失败或取消支付后的回调函数， res.errMsg = 'requestPayment:fail cancel' 取消支付；res.errMsg = 'requestPayment:fail (detail error message)'
        console.log(res)
        clearTimeout(timeOut)
        if (res.errMsg == 'requestPayment:fail cancel') {
          that.setData({
            payClose: true
          })
          wx.showToast({
            title: '取消支付',
            icon: 'none'
          })
        }
        that.getPayStatus(options.orderNum)
      }
    })
  }
})